In a controlled motion system, such as a CNC (computer numerical control) controlled machine tool system for example, movable machine members are moved along a programmed path by programming the motion command and specifying position coordinates on the path. Linear paths are typically defined by programming the path end points on the line, circular paths are typically defined by programming the circle end points and circle center data, and arcuate paths are typically defined by programming a series of points along the arc. The operator of the machine tool can program these data points for the particular part to be machined. Motion along the path can be achieved by the CNC system by interpolating intermediate points between the programmed points at a predetermined repetition rate, and motion of the movable members can be controlled in response to these intermediate “interpolated” position commands.
Programmed points that represent a pair of consecutive linear spans oftentimes define a corner in the path. However, traversing such a corner can result in a step discontinuity in the commanded velocity of the movable member. Step discontinuities in velocity are undesirable because they can inject high frequency energy into the position control loop of a servocontroller providing the controlled motion, such that the actual motion achieved by the controller does not exactly track the command position trajectory represented by the path points.
Moreover, step discontinuities in velocity command result in a requirement of infinite acceleration in order for the controlled moveable member to actually follow the command. Infinite (or very large and fast changes in) accelerations are never actually achieved by the movable member due to the ultimate low-pass nature of the servo loops controlling the member, thus the command is not precisely duplicated by the motion of the member. A step discontinuity in velocity command can result in structural vibrations and wear of machine components, among other problems, such as mechanical deflection and cross-coupled axis dynamics where motion or vibration in one axis causes undesired motion or vibration on a separate axis. In the machine tool context, these undesirable phenomena can also result in unacceptable surface finish and/or reduced accuracy of the machined part.
While it has been known that commanding a full stop at the corner point can eliminate step discontinuities in velocity, such stops are undesirable because they increase the time required to complete the motion. Moreover, in the machine tool context, full stops can also create undesirable “dwell marks” on the workpiece.
Consequently, to avoid the speed limitations of using a full stop at corners, it has been known in the art to move through corners using some tolerable step velocity discontinuities, resulting in some tolerable amount of corner rounding. The degree of corner rounding that occurs depends on many factors including the axes position loop gains, the response characteristics of the velocity loop servos, the angle defined by the corner, and the orientation of the corner relative to the motion producing axes. Furthermore, the shape of the rounded corner is asymmetrical and is also a dependent of the aforementioned factors.
Circular arcs can be inserted at corners. However, such arcs can result in undesirable step discontinuity in acceleration, which can result in machine wear and poorly machined parts.
Thus, there remains a need for a method and apparatus for controlling motion through a corner in a programmed path which maximizes path velocity, and which also reduces or eliminates step discontinuities in velocity and acceleration. Moreover, there remains a need for such a method which increases the quality of the surface finish on a workpiece, and/or which minimizes the amount of rounding which is provided at the corner. In addition, there remains a need for such a method and apparatus which can also automatically identify corners which can benefit from a rounded path, and to then proceed to determine the rounded path to be utilized for those corners. In addition, there is a need for a method and apparatus which controls motion through a corner in a programmed machine tool path which eliminates step discontinuities in velocity and provides a desirable curvature at the corner on the machined part.